package model;

import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;


public class Computador extends AbstractModel {

	private String descricao;
	private String enderecoMac;
	private String enderecoIp;
	private Software sistemaOperacional;
	private Collection<Software> softwares;
	private Collection<Hardware> hardwares;
	private Collection<Periferico> perifericos;
	private Situacao situacao;

	public Computador() {
	}

	public Computador(int id, String descricao, String enderecoMac, String enderecoIp,
			Software sistemaOperacional, Collection<Software> softwares, 
			Collection<Hardware> hardwares, Collection<Periferico> perifericos ) {
		this.id = id;
		this.descricao = descricao;
		this.enderecoMac = enderecoMac;
		this.enderecoIp = enderecoIp;
		this.sistemaOperacional = sistemaOperacional;
		this.softwares = softwares;
		this.hardwares = hardwares;
		this.perifericos = perifericos;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public String getEnderecoMac() {
		return enderecoMac;
	}
	public void setEnderecoMac(String enderecoMac) {
		this.enderecoMac = enderecoMac;
	}
	public String getEnderecoIp() {
		return enderecoIp;
	}
	public void setEnderecoIp(String enderecoIp) {
		this.enderecoIp = enderecoIp;
	}
	public Software getSistemaOperacional() {
		return sistemaOperacional;
	}
	public void setSistemaOperacional(Software sistemaOperacional) {
		this.sistemaOperacional = sistemaOperacional;
	}
	public Collection<Software> getSoftwares() {
		if (softwares == null){
			softwares = new HashSet<Software>();
		}
		return softwares;
	}
	public void setSoftwares(Collection<Software> softwares) {
		this.softwares = softwares;
	}
	public Collection<Hardware> getHardwares() {
		return hardwares;
	}
	public void setHardwares(Collection<Hardware> hardwares) {
		if (hardwares == null){
			hardwares = new HashSet<Hardware>();
		}
		this.hardwares = hardwares;
	}
	public Situacao getSituacao() {
		return situacao;
	}
	public void setSituacao(Situacao situacao) {
		this.situacao = situacao;
	}
	public Collection<Periferico> getPerifericos() {
		return perifericos;
	}
	public void setPerifericos(Collection<Periferico> perifericos) {
		this.perifericos = perifericos;
	}

	@Override
	public HashMap<String, Object> getDados() {
		HashMap<String, Object> map = new HashMap<String, Object>();
		map.put("cd_computador", this.getId());
		map.put("ds_computador", this.getDescricao());
		map.put("ds_enderecomac", this.getEnderecoMac());
		map.put("ds_enderecoip", this.getEnderecoIp());
		map.put("tp_situacao", this.getSituacao().getValue());
		map.put("cd_sistema_operacional", this.getSistemaOperacional().getId());

		return map;
	}

	@Override
	public String getTabela() {
		return "computador";
	}

	@Override
	public String getCampoId() {
		return "cd_computador";
	}
}
